package org.mathig.poker;

/**
 * Listen acions of other players.<br>
 * If a Player implements also this interface, it will be aware of others actions.<br>
 * It will not be hint for his proper actions.
 * 
 * @author gmathias
 */
public interface PlayerListener {

   /**
    * Called after a player fold.
    * 
    * @param player
    * @param context
    */
   void playerFold(Player player, Context context);

   /**
    * Called after a player checked (did nothing).
    * 
    * @param player
    * @param context
    */
   void playerChecked(Player player, Context context);

   /**
    * Called after a player limped (pay the BB).
    * 
    * @param player
    * @param context
    */
   void playerLimped(Player player, Context context);

   /**
    * Called after a player bet (nobody bet before).
    * 
    * @param player
    * @param context
    */
   void playerBet(Player player, Context context);

   /**
    * Called after a player bet (nobody bet before).
    * 
    * @param player
    * @param context
    */
   void playerAllIn(Player player, Context context);
   
   /**
    * Called after a player called (someone bet, this player pay).
    * 
    * @param player
    * @param context
    */
   void playerCalled(Player player, Context context);

   /**
    * Called after a player raised (someone had already bet but this player bet more).
    * 
    * @param player
    * @param context
    */
   void playerRaised(Player player, Context context);

}
